/**
 * 标准化API响应数据格式
 * @param {any} data - 原始数据
 * @returns {Object} 标准化的API响应格式
 */
export function standardizeApiResponse(data) {
  if (!data) {
    return {
      code: 200,
      message: 'success',
      data: null,
    };
  }

  // 如果已经是标准格式，直接返回
  if (
    typeof data === 'object' &&
    data !== null &&
    Object.prototype.hasOwnProperty.call(data, 'code') &&
    Object.prototype.hasOwnProperty.call(data, 'message') &&
    Object.prototype.hasOwnProperty.call(data, 'data')
  ) {
    return data;
  }

  // 如果是数组或其他格式，包装为标准格式
  return {
    code: 200,
    message: 'success',
    data: data,
  };
}

/**
 * 格式化API数据为标准格式
 * @param {any} data - API数据
 * @returns {string} 带语法高亮的HTML字符串
 */
export function formatApiData(data) {
  if (!data) {
    return '';
  }

  // 标准化API响应格式
  let standardizedData;

  if (typeof data === 'string') {
    try {
      const parsed = JSON.parse(data);
      standardizedData = standardizeApiResponse(parsed);
    } catch (e) {
      standardizedData = {
        code: 200,
        message: 'success',
        data: data,
      };
    }
  } else if (typeof data === 'object') {
    standardizedData = standardizeApiResponse(data);
  } else {
    standardizedData = {
      code: 200,
      message: 'success',
      data: data,
    };
  }

  // 使用testHighlight进行格式化
  return standardizedData;
}
